package com.mmy.service.impl.line;

import java.util.Date;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.mmy.controller.UtilConstants;
import com.mmy.dao.line.TLineTripRepository;
import com.mmy.domain.line.TLineTrip;
import com.mmy.domain.sys.TSysUser;
import com.mmy.service.ServiceCommon;
import com.mmy.service.line.LineTripService;

@Service
public class LineTripServiceImpl /* implements LineTripService */ {
	@Autowired
	private TLineTripRepository tLineTripRepository;
	@Autowired
	private ServiceCommon common;
	
	/**
	 * 函数功能说明：获得最大行程编码
	 *
	 * @param 参数说明
	 * @return 返回值说明 Object
	 * @throws 异常处理说明
	 * @author 创建人 hanxl 修改人 liys
	 * @date 创建日期 2020.11.18 修改时间 2021.01.22
 	 */
	public int getMaxTripID() {
		Object objCode = tLineTripRepository.getMaxTripID();
		int iID = 0;
		if(objCode !=null)iID = Integer.parseInt(objCode.toString());
		return iID;
	}


	/**
	 * 函数功能说明：创建行程单
	 *
	 * @param 参数说明
	 * @return 返回值说明 无返回值
	 * @throws 异常处理说明
	 * @author 创建人 hanxl 修改人 shangzl
	 * @date 创建日期 修改时间 2020.11.18
	 */
	public void save(int tripID) {

		tLineTripRepository.save(tripID);
	}

	/**
	 * 函数功能说明：创建 修改行程单
	 *
	 * @param 参数说明
	 * @return 返回值说明 无返回值
	 * @throws 异常处理说明
	 * @author 创建人 hanxl 修改人 shangzl
	 * @date 创建日期 修改时间 2020.11.18
	 */
	public void save(List<TLineTrip> lstLineTrip,TSysUser tSysUser,int iLineID) {
		for (TLineTrip tLineTrip : lstLineTrip) {
			tLineTrip.setTripID(common.createMaxID(UtilConstants.TableName.T_LINE_TRIP));
			tLineTrip.setLineID(iLineID);
			tLineTrip.setCreateDate(new Date());
			tLineTrip.setCreator(tSysUser.getUserName());
			tLineTripRepository.save(tLineTrip.getTripID());
			tLineTripRepository.save(tLineTrip);
		}
	}

	/**
	 * 函数功能说明：查询该线路的行程表
	 *
	 * @param 参数说明
	 * @return 返回值说明 线路行程集合
	 * @throws 异常处理说明
	 * @author 创建人 hanxl 修改人 shangzl
	 * @date 创建日期 修改时间 2020.11.18
	 */
	public List<TLineTrip> findByLineID(int iLineID) {

		return tLineTripRepository.findByLineID(iLineID);
	}

	/**
	 * 函数功能说明：删除该LineID线路行程
	 *
	 * @param 参数说明
	 * @return 返回值说明 无返回值
	 * @throws 异常处理说明
	 * @author 创建人 hanxl 修改人 shangzl
	 * @date 创建日期 修改时间 2020.11.18
	 */
	public void deleteByLineID(int LineID) {

		tLineTripRepository.deleteByLineID(LineID);
	}
	
	/**
	 * 函数功能说明：删除线路集合的行程
	 *
	 * @param 参数说明
	 * @return 返回值说明 无返回值
	 * @throws 异常处理说明
	 * @author 创建人 liys
	 * @date 创建日期 修改时间 2021.01.27
	 */
	public void delByLineIdList(List<Integer> lstLineID) {
		
		tLineTripRepository.delByLineIdList(lstLineID);
	}
}
